home *** CD-ROM | disk | FTP | other *** search
- {$R+}
-
- {$DEFINE vgraph}
-
- PROGRAM example1;
- USES
- {$IFDEF vgraph}
- VGraph
- {$ELSE}
- Graph
- {$ENDIF}
- ,Crt;
-
- CONST
- a : ARRAY[0..3] OF REAL = (0.85,0.2,-0.15,0);
- b : ARRAY[0..3] OF REAL = (0.04,-0.26,0.28,0);
- c : ARRAY[0..3] OF REAL = (-0.04,0.23,0.24,0.16);
- d : ARRAY[0..3] OF REAL = (0.85,0.22,0.24,0.16);
- e : ARRAY[0..3] OF REAL = (0,0,0,0);
- f : ARRAY[0..3] OF REAL = (1.6,1.6,0.44,0);
- p : ARRAY[0..3] OF REAL = (85,92,99,100);
- x : REAL = 0;
- y : REAL = 0;
- xx: REAL = 0;
- l : INTEGER = 0;
- k : INTEGER = 0;
-
- VAR
- i,j : INTEGER;
- ready : BOOLEAN;
-
- grDriver,grMode : INTEGER;
- BEGIN
- { Select a video mode }
- {$IFDEF vgraph}
- InitVesa(V640x480x256);
- { Set background to dark and drawing color to light }
- SetRGBPal(0,0,0,0);
- SetRGBPal(1,255,255,255);
- {$ELSE}
- grDriver := detect;
- InitGraph(grDriver,grMode,'');
- {$ENDIF}
- REPEAT
- FOR i := 1 TO 2000 DO BEGIN
- l := Random(MaxInt) MOD 100+1;
- ready := FALSE;
- j := 0;
- WHILE NOT ready DO BEGIN
- IF l<=p[j] THEN BEGIN
- k := j;
- ready := TRUE;
- END;
- Inc(j);
- END;
- xx:= a[k]*x + b[k]*y + e[k];
- y := c[k]*x + d[k]*y + f[k];
- x := xx;
- IF (i>10) THEN
- PutPixel(Trunc(x*40+300),Trunc(469-y*40),1);
- Inc(i);
- END;
- UNTIL KeyPressed;
- { Clean up the mess - release memory and so on }
- {$IFDEF vgraph}
- CloseVesa;
- {$ELSE}
- CloseGraph;
- {$ENDIF}
- END.